package cn.kone.remote.impl;

import cn.kone.pojo.domain.Login;
import cn.kone.remote.api.UaaFeignApi;
import cn.kone.remote.dto.param.LoginDto;
import cn.kone.result.JSONResult;
import cn.kone.service.ILoginService;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RestController;

import javax.validation.Valid;
import java.util.Date;

/**
 * 标识为 Spring 的 RestController，将这个类声明为一个控制器，用于处理 HTTP 请求
 */
@RestController
public class UaaFeignApiImpl implements UaaFeignApi {
    @Autowired
    private ILoginService loginService;

    /**
     * 实现 UaaFeignApi 接口中的 saveLogin 方法
     * 使用 @Valid 注解进行参数校验，确保传入的 LoginDto 对象合法
     * @param loginDto
     * @return
     */
    @Override
    public JSONResult saveLogin(@Valid LoginDto loginDto) {
        // 创建一个 Login 对象，并将 LoginDto 的属性复制到 Login 对象中
        Login login = new Login();
        BeanUtils.copyProperties(loginDto, login);
        login.setCreateTime(new Date());
        // 调用登录服务的 save 方法，将登录信息保存到数据库中
        loginService.save(login);
        // 返回一个成功的 JSONResult 对象，表示登录信息保存成功
        return JSONResult.success();
    }
}
